Generally speaking Occam's razor applies to software. That is, the simplest software which solves a given problem is usually the better software. This is because simpler software is easier to maintain, easier to use, and easier to extend. Cyclomatic Complexity indicates the complexity of a software program by directly measuring the number of linearly independent paths through a program's source code. Thomas J. McCabe, Sr., in his work on Cyclomatic Complexity (McCabe T., A Complexity Measure, IEEE Transactions on Software Engineering, December 1976, incorporated herein by reference), showed that a code snippet with greater than ten separate linear independent paths is very difficult to maintain, or change.